'''
文件操作
os.open(file, flags, mode) 打开文件
os.close(fd) 关闭文件
os.read(fd, n) 读取文件
os.write(fd, buf) 写入文件
os.seek(fd, offset, whence) 移动文件指针
os.fstat(fd) 获取文件状态
os.fchmod(fd, mode) 修改文件权限
os.fchown(fd, uid, gid) 修改文件所有者
os.ftruncate(fd, length) 截断文件
os.fsync(fd) 同步文件
os.fdatasync(fd) 同步文件数据
os.dup(fd) 复制文件描述符
os.dup2(fd1, fd2) 复制文件描述符
os.chdir(path) 改变当前工作目录
os.chroot(path) 改变根目录
os.chdir(path) 改变当前工作目录
os.chroot(path) 改变根目录
'''

import os
import shutil
# 1. 查看当前目录
print(os.getcwd())

# 改变当前工作目录
# os.chdir('D:\\python\\demo')
# print(os.getcwd())

# 2. 查看目录下的文件和文件夹
print(os.listdir())

# 3. 创建文件夹
# print(os.path.split(os.getcwd()))
# os.mkdir('tmp') # 文件夹存在会报错
# os.makedirs('tmp/a/b/c',exist_ok=True) # 文件夹存在不会报错，注意要带上exist_ok=True参数

# 4. 删除文件夹
# os.rmdir('tmp') # 目录下有文件会报错
# shutil.rmtree('tmp') # 目录下有文件不会报错

# 5. 重命名文件夹
# os.mkdir('tmp')
# os.rename('tmp', 'tmp2')

# 6. 复制文件夹
# shutil.copytree('tmp2', 'tmp3')

# 7. 移动文件夹
# shutil.move('tmp3', 'tmp4')


# 目录路径
directory_path = os.getcwd()
# 遍历目录
for root, dirs, files in os.walk(directory_path):
    # 打印当前目录路径
    print(root) # 打印当前目录路径
    print(dirs) # 打印当前目录下的所有子目录
    print(files) # 打印当前目录下的所有文件
    print('------------------')